652057
@@ -373,10 +373,9 @@
public class BlockingQueueConsumer {
 				RabbitUtils.rollbackIfNecessary(channel);
 			}
 			if (ackRequired) {
-				if (logger.isDebugEnabled()) {
-					logger.debug("Rejecting messages");
-				}
-				boolean shouldRequeue = this.defaultRequeuRejected;
+				// We should always requeue if the container was stopping
+				boolean shouldRequeue = this.defaultRequeuRejected ||
+						ex instanceof MessageRejectedWhileStoppingException;
 				Throwable t = ex;
 				while (shouldRequeue && t != null) {
 					if (t instanceof AmqpRejectAndDontRequeueException) {
@@ -384,6 +383,9 @@
public class BlockingQueueConsumer {
 					}
 					t = t.getCause();
 				}
+				if (logger.isDebugEnabled()) {
+					logger.debug("Rejecting messages (requeue=" + shouldRequeue + ")");
+				}
 				for (Long deliveryTag : deliveryTags) {
 					// With newer RabbitMQ brokers could use basicNack here...
 					channel.basicReject(deliveryTag, shouldRequeue);
